本发明属于新兴信息,尤其涉及一种基于virtio协议用于前后端的同步系统及方法。
背景技术:
1、智能网卡自带soc小系统,智能网卡硬件集成了ovs virtio_net virtio_blk等模块。当智能网卡soc小系统没有完全启动完成的情况下,host通过virtio下发的请求业务报文是无法通过智能网卡转发的。因此主机host与智能网卡soc存在一个异步的问题。
2、该异步问题带来的现实问题。例如主机host利用pxe进行装机。主机host开电后,进入bios启动,bios会识别virtio-net设备,然后利用virtio-net设备进行pxe装机。由于host bios启动较快,智能网卡soc启动慢,soc上的软件业务还没给硬件配置流表及流转发规则,因此,主机的host下发的pxe协议报文无法转发到远端,导致pxe装机失败。现有的方案,主板开电以后,主机host上的bmc软件先不给主机host开电,智能网卡上单独供电,且其上的soc运行bmc软件,bmc软件通过pcie插槽上的smbus与host上的bmc进行通信。待智能网卡soc启动完成后,通过smbus通知主机上的bmc给主机host开电。
3、现有方法的缺点:
4、1)主机host及智能网卡soc上都需要运行bmc业务。对bmc具有强依赖,切bmc与bmc之间的通信非标准。
5、2)智能网卡需要独立供电,不能通过标准的金手指供电,设计比较复杂。
技术实现思路
1、本发明所要解决的技术问题是针对背景技术的不足提供一种基于virtio协议用于前后端的同步系统及方法,在现有的virtio协议上增加一个feature,即支持同步状态特性,同时在协议状态机中增加一个同步等待状态;实现一个通用标准方法,解决主机host与智能网卡soc存的异步问题;从而解决实际环境中因为异步导致的很多问题。
2、本发明为解决上述技术问题采用以下技术方案:
3、一种基于virtio协议用于前后端的同步系统,具体包含智能网卡fpga virtio模块、virtio option rom驱动模块、智能网卡soc模块;
4、其中,智能网卡fpga virtio模块,用于virtio模块默认支持同步等待特性,并进入同步等待状态;
5、virtio option rom驱动模块,用于在初始化流程中,读取并等待virtio同步等待状态释放;
6、智能网卡soc模块,用于在智能网卡soc模块完成业务逻辑初始化后,设置virtio模块进入同步等待状态释放状态。
7、作为本发明基于virtio协议用于前后端的同步系统的进一步优选方案,virtiooption rom驱动模块,具体如下:
8、步骤2.1,virtio option rom驱动模块被加载到主机后,进入初始化流程;
9、步骤2.2,在初始化之前,判断是否支持同步等待特性;
10、步骤2.3,若支持同步等待特性,则读取状态寄存器,否则进入步骤2.6;
11、步骤2.4,读取状态寄存器,并判断是否进入同步等待状态;
12、步骤2.5,如果判断是,进入步骤2.4,否则进入步骤2.6;
13、步骤2.6,继续完成初始化逻辑。
14、作为本发明基于virtio协议用于前后端的同步系统的进一步优选方案,智能网卡soc模块,具体如下:
15、步骤3.1,智能网卡soc模块启动完成,正常对外转发报文后;
16、步骤3.2,判断virtio模块是否支持同步等待特性;
17、步骤3.3,若支持同步等待特性,则读取状态寄存器,否则进入步骤3.6;
18、步骤3.4,读状态寄存器,并判断是否进入同步等待状态;
19、步骤3.5,如果判断是,则设置virtio模块进入同步等待释放状态,否则进入步骤3.6;
20、步骤3.6,正常继续运行。
21、作为本发明基于virtio协议用于前后端的同步系统的进一步优选方案,智能网卡fpga virtio模块virtio模块默认支持同步等待特性,支持同步等待状态。
22、作为本发明基于virtio协议用于前后端的同步系统的进一步优选方案,智能网卡fpga virtio模块上电工作后进入默认状态。
23、作为本发明基于virtio协议用于前后端的同步系统的进一步优选方案,在步骤3.1中,智能网卡soc启动完成包含配置流规则。
24、作为本发明基于virtio协议用于前后端同步系统的进一步优选方案,在步骤3.1中,在步骤3.1中,智能网卡soc启动完成包含ovs流表;其中,ovs是一个高质量、多层的虚拟交换组件。
25、作为本发明基于virtio协议用于前后端的同步系统的进一步优选方案,在步骤2.1中,virtio option rom驱动模块驱动自带驱动智能网卡。
26、一种基于virtio协议用于前后端的同步系统的同步方法,具体包含如下步骤;
27、步骤1,在virtio协议上增加一个feature,支持同步状态特性,同时在协议状态机中增加一个同步等待状态;
28、步骤2,智能网卡soc模块在开电后,virtio模块硬逻辑中支持同步状态特性,并进入同步等待状态;
29、步骤3,host主机在加载virtio模块的驱动后,驱动根据同步状态特性,读取同步状态,直到同步状态等待状态被释放;
30、步骤4,智能网卡soc模块在soc的业务启动完成并正常工作后,控制virtio模块逻辑释放同步状态等待状态。
31、作为本发明基于virtio协议用于前后端的同步方法的进一步优选方案,在步骤3中,设置virtio模块进入同步等待状态释放状态。
32、本发明采用以上技术方案与现有技术相比,具有以下技术效果:
33、本发明在现有的virtio协议上增加一个feature,即支持同步状态特性,同时在协议状态机中增加一个同步等待状态;实现一个通用标准方法,解决主机host与智能网卡soc存的异步问题;从而解决实际环境中因为异步导致的很多问题。
1.一种基于virtio协议用于前后端的同步系统,其特征在于:具体包含智能网卡fpgavirtio模块、virtio option rom驱动模块、智能网卡soc模块;
2.根据权利要求1所述的基于virtio协议用于前后端的同步系统,其特征在于:virtiooption rom驱动模块,具体如下:
3.根据权利要求1所述的基于virtio协议用于前后端的同步系统,其特征在于:智能网卡soc模块,具体如下:
4.根据权利要求1所述的一种基于virtio协议用于前后端的同步系统,其特征在于:智能网卡fpga virtio模块virtio模块默认支持同步等待特性,支持同步等待状态。
5.根据权利要求1所述的一种基于virtio协议用于前后端的同步系统,其特征在于:智能网卡fpga virtio模块上电工作后进入默认状态。
6.根据权利要求1所述的基于virtio协议用于前后端的同步系统,其特征在于:在步骤3.1中,智能网卡soc启动完成包含配置流规则。
7.根据权利要求1所述的基于virtio协议用于前后端的同步系统,其特征在于:在步骤3.1中,在步骤3.1中,智能网卡soc启动完成包含ovs流表;其中,ovs是一个高质量、多层的虚拟交换组件。
8.根据权利要求1所述的基于virtio协议用于前后端的同步系统,其特征在于:在步骤2.1中,virtio option rom驱动模块驱动自带驱动智能网卡。
9.一种基于权利要求1至8任一项所述的基于virtio协议用于前后端的同步系统的同步方法,其特征在于:具体包含如下步骤;
10.根据权利要求7所述的基于virtio协议用于前后端的同步方法,其特征在于:在步骤3中,设置virtio模块进入同步等待状态释放状态。