[发明专利]一种基于TOE网卡的Target端协议硬件解析方法有效
申请号: | 201910368878.3 | 申请日: | 2019-05-05 |
公开(公告)号: | CN110177087B | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 杨威锋;雷天语;云飞龙;鄢来明;贺颜 | 申请(专利权)人: | 方一信息科技(上海)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 上海海钧知识产权代理事务所(特殊普通合伙) 31330 | 代理人: | 王睿 |
地址: | 200433 上海市杨*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 toe 网卡 target 协议 硬件 解析 方法 | ||
1.一种基于TOE网卡的Target端协议解析分流方法,其特征在于,包括:
步骤1,Initiator端通过TOE网卡向Target端发送ISCSI PDU,TOE网卡的FPGA的PhyCore和TOE IP完成以太网物理层、MAC层以及TCP/IP层的协议解析,并保留TCP Payload,FPGA将对TCP Payload数据流进行PDU帧界定,找出ISCSI PDU中的BHS字段和可能存在的AHS字段与数据段;
步骤2,BHS字段通过CQ包入PCIE TLP写入Host DDR;将ISCSI PDU剩余信息的AHS字段和数据段通过EMIF写入TOE网卡DDR;
步骤3,TOE网卡的驱动层从Host DDR获取BHS字段,根据BHS字段中的Opcode和Length进行操作,包括:首先驱动层判断Opcode是否为命令类型,如果否,则驱动层将BHS字段传送至CPU,CPU根据Login协商信息以及当前Write Command内容,计算出当前数据段存储在Flash中对应的地址;然后发送P2P传送指令至TOE网卡FPGA PCIE DMA引擎,TOE网卡的DMA将TOE网卡DDR的数据段传送至TOE网卡PCIE SSD的Bar2空间,并存入PCIE SSD的DDR中;
如果是,则驱动层根据Length判断ISCSI PDU长度是否大于48字节,在判断ISCSI PDU长度是否大于48字节的过程中,如果判断为是,则驱动层实施DMA操作将写入TOE网卡DDR中的ISCSI PDU剩余信息搬运至Host DDR,以供CPU处理;如果判断为否,则应用层将Host DDR中已获得的BHS信息发送给CPU处理。
2.根据权利要求1所述的方法,其特征在于,所述TOE网卡DDR的数据段通过P2P传送至TOE网卡PCIE SSD的Bar2空间。
3.根据权利要求1所述的方法,其特征在于,所述Target端的FPGA判断所发送的ISCSIPDU是否为正确的ISCSI PDU,如果不正确,发送错误信息给Target端的驱动层,驱动层发送重置指令到指定的session控制器,Initiator端重新发送ISCSI PDU;如果判断为正确,则解析ISCSI PDU并保留TCP Payload。
4.根据权利要求1所述的方法,其特征在于,所述Target端的FPGA根据协议解析的结果,判断ISCSI PDU是否正确。
5.一种通讯设备,其特征在于,包括:
ISCSI PDU接收模块,用于接收Initiator端发送的第一ISCSI PDU;
ISCSI PDU判断模块,用于判断Initiator端发送的第一ISCSI PDU是否正确;
ISCSI PDU解析模块,用于解析第一ISCSI PDU并保留TCP Payload,并将TCP Payload数据流进行PDU帧界定,找出第一ISCSI PDU中的BHS字段、可能存在的AHS字段和数据段;
TOE网卡DDR,用于写入AHS字段和数据段;
Host DDR,用于写入PCIE TLP,其中,BHS字段通过CQ包入PCIE TLP中;
CPU,用于接收BHS字段和可能存在的AHS字段,执行Initiator端发送的请求,并将执行请求所产生的相应数据封装成第二ISCSI PDU,发送给Host DDR;
Length判断模块,用于判断第一ISCSI PDU长度是否大于48字节;
PCIE DMA模块,在第一ISCSI PDU长度大于48字节时,将TOE网卡DDR中的信息搬运至Host DDR;将Host DDR中的第二ISCSI PDU发送给TOE网卡DDR;
DDR读取模块,读取TOE网卡DDR中的第二ISCSI PDU发送给Initiator端;
所述通讯设备还包括:
Opcode指令判断模块,判断Opcode是否为命令类型;
其中,在判断Opcode为命令类型时,Length判断模块判断第一ISCSI PDU长度是否大于48字节;
所述通讯设备还包括:
Flash地址计算模块,在判断Opcode不为命令类型时,应用层根据Login协商信息以及当前写命令的内容,计算当前数据段存储在Flash中对应的地址;
PCIE SSD,PCIE SSD的DDR用于接收并存储TOE网卡DDR中的数据段;
所述通讯设备还包括:PCIE DMA引擎,用于通过P2P将TOE网卡DDR中的数据段传输给PCIE SSD DDR;
其中,TOE网卡的驱动层从Host DDR获取BHS字段,根据BHS字段中的Opcode和Length进行操作,包括:首先驱动层判断Opcode是否为命令类型,如果否,则驱动层将BHS字段传送至CPU,CPU根据Login协商信息以及当前Write Command内容,计算出当前数据段的存储在Flash中对应的地址;然后发送P2P传送指令至TOE网卡FPGA PCIE DMA引擎,TOE网卡的DMA将TOE网卡DDR的数据段传送至TOE网卡PCIE SSD的Bar2空间,并存入PCIE SSD的DDR中;
如果是,则驱动层根据Length判断第一ISCSI PDU长度是否大于48字节,在判断第一ISCSI PDU长度是否大于48字节的过程中,如果判断为是,则驱动层实施DMA操作将写入TOE网卡DDR中的PDU剩余信息搬运至Host DDR,以供CPU处理;如果判断为否,则应用层将HostDDR中已获得的BHS信息发送给CPU处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于方一信息科技(上海)有限公司,未经方一信息科技(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910368878.3/1.html,转载请声明来源钻瓜专利网。