![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SRP
文章平均质量分 80
CodeFarmerL
软件架构,硬件建模、硬件IP验证、智能网卡、DPU、Android、NPU、AI、RISC-V、NIC(network_interconnect)
展开
-
SCSI系列三:linux SCSI 子系统四十九-sg(1)
这个结构体用于描述 SCSI 命令和数据传输的参数,是在进行 SCSI I/O 操作时与设备进行通信的重要工具。SG 设备是一种特殊的设备接口,允许用户空间应用程序与 SCSI 设备进行直接通信,执行 SCSI 命令和数据传输。是用于与 SCSI 设备进行通信的数据结构,它包含了执行 SCSI I/O 操作时所需的各种参数和状态信息。这个结构用于获取 SCSI 设备的标识信息,包括主机编号、通道、SCSI ID、LUN、设备类型以及主机和设备的队列深度等信息。取值为 0、1 或 2,表示请求的状态。原创 2023-08-11 10:55:05 · 906 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统四十三-scsi_transport_iscsi(11)
函数查找与目标主机号关联的 SCSI 主机结构。检查传递给函数的参数数据长度是否超过了一个页面的大小,如果超过了,函数返回错误码。函数查找与目标主机号关联的 SCSI 主机结构。总之,该函数用于将用户空间传递的 CHAP 认证信息设置到 iSCSI 主机中。总之,该函数用于从 iSCSI 主机中删除指定索引的 CHAP 认证信息。函数,传入 SCSI 主机、参数标识符、参数数据指针和参数数据的长度。结构中获取所需的参数,如主机号、CHAP 表索引和期望的条目数量。如果成功设置信息,函数返回操作结果。原创 2023-08-09 16:16:55 · 85 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统四十二-scsi_transport_iscsi(10)
通过这个函数,内核可以执行 iSCSI 端点的连接操作,将主机和目标端点进行连接,可以选择使用阻塞或非阻塞的连接方式。通过这个函数,内核可以在创建 iSCSI 会话时将会话相关的信息填充到用户空间的请求结构中,从而确保用户空间能够获取会话的相关信息以及会话创建的状态。通过这个函数,内核可以在创建 iSCSI 连接时将连接的相关信息填充到用户空间的请求结构中,从而确保用户空间能够获取连接的相关信息以及连接创建的状态。通过这个函数,用户空间可以查询 iSCSI 连接的统计信息,从而监控和分析连接的性能和状态。原创 2023-08-09 16:04:58 · 75 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统四十一-scsi_transport_iscsi(9)
这段代码是一个函数,用于根据给定的 iSCSI 传输层指针查找与之关联的 iSCSI 内部数据结构。主要用于在 iSCSI 传输层和 iSCSI 内部之间建立关联和查找。该函数的流程是:获取全局的 iSCSI 传输层锁,以确保在查找过程中不会有并发访问问题。使用循环遍历全局链表,这个链表包含所有已注册的 iSCSI 传输层的内部数据结构。在每次循环迭代中,检查当前遍历到的priv内部数据结构的字段是否与给定的tt指针相等。如果相等,表示找到了与给定的传输层关联的内部数据结构。原创 2023-08-09 15:49:03 · 74 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统四十-scsi_transport_iscsi(8)
这个函数会减少 iSCSI 类连接的引用计数,并在引用计数减少到零时释放连接的内存资源。这个函数用于遍历所有连接设备,如果连接的状态不是已关闭,则强制终止连接并销毁连接。函数,减少会话设备的引用计数。这实际上是将会话设备的引用计数减少1,如果没有其他地方引用会话设备,则会触发设备的销毁。该函数用于停止 iSCSI 连接,它考虑了连接的端点情况,以及连接停止的不同情况,如终止连接或进行清理。这些函数的使用可以确保在正确的时间增加和减少连接的引用计数,从而避免内存泄漏或访问已释放内存的情况。原创 2023-08-09 15:10:24 · 78 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十九-scsi_transport_iscsi(7)
__iscsi_unbind_sessionstatic void __iscsi_unbind_session(struct work_struct *work){ struct iscsi_cls_session *session = container_of(work, struct iscsi_cls_session, unbind_work); struct Scsi_Host *shost = iscsi_session_to_shost(session); s原创 2023-08-09 14:35:43 · 106 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十八-scsi_transport_iscsi(6)
总之,该函数允许在给定的主机上迭代遍历所有 iSCSI 会话设备,并对每个会话设备执行特定的操作。总之,这个函数会在工作队列中执行,根据会话对象执行 iSCSI 会话的重新扫描操作,以检测新的目标设备并将其添加到系统中。总之,这个函数用于执行用户请求的 iSCSI 扫描操作,遍历会话设备列表并执行相应的扫描操作,以添加目标设备到系统中。的函数,用于设置会话为已登录状态,并开始进行 IO 操作。总之,该函数允许根据给定的会话ID在会话链表中查找匹配的 iSCSI 会话,并返回找到的会话对象。原创 2023-08-09 11:54:05 · 90 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十七-scsi_transport_iscsi(5)
这个函数的作用是在 sysfs 中创建并注册闪存节点连接的设备,以便显示闪存节点连接的属性。这个函数的作用是在 sysfs 中创建并注册闪存节点会话的设备,以便显示闪存节点会话的属性。总之,该函数允许根据提供的数据和比较函数,在设备列表中查找与之匹配的闪存节点会话对象,并返回匹配的设备对象。,用于移除 ISCSI 主机设置。该函数的主要作用是根据提供的数据和比较函数,在设备列表中查找与之匹配的闪存节点会话对象。这些函数的主要目的是辅助管理闪存节点连接设备,从验证设备是否是闪存节点连接开始,到销毁这些设备。原创 2023-08-09 11:17:27 · 95 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十六-scsi_transport_iscsi(4)
在函数内部,通过将设备指针转换为闪存节点连接指针,然后进一步将其转换为闪存节点会话指针,最终调用适当的传输层函数来获取闪存节点参数的值。在这个函数中,通过将设备指针转换为闪存节点会话指针,释放了相关的内存,如目标名称、目标别名、门户类型等,然后最终释放了闪存节点会话本身的内存。的设备类型结构,其中包含设备类型的名称、属性组和释放函数。这些宏和函数的目的是为闪存节点连接属性提供方便的显示操作,使其能够在 sysfs 中展示相应的值。的属性组,包含了所有闪存节点连接属性,以及用于确定属性组是否可见的函数。原创 2023-08-08 17:09:30 · 56 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十五-scsi_transport_iscsi(3)
这些代码段定义了一系列 iSCSI 特定的设置属性,这些属性包括默认任务管理超时、报头摘要、数据摘要、立即数据传输、初始 R2T、数据序列是否有序、数据 PDU 是否有序、ERL(Error Recovery Level)等。这些代码段定义了一系列通用的 iSCSI 接口属性,这些属性包括接口启用状态、VLAN ID、VLAN 优先级、VLAN 是否启用、最大传输单元(MTU)等。这种机制允许根据属性的类型和特定的参数值来动态控制属性是否在 sysfs 中显示,从而在不同的情况下提供不同的可见性设置。原创 2023-08-08 14:36:22 · 78 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十四-scsi_transport_iscsi(2)
这个结构体的目的是提供一个 iSCSI 内部数据的管理机制,其中包括 iSCSI 传输层的实例、设备信息、传输层模板函数等。需要注意的是,自旋锁是一种忙等锁,在获取锁失败时会不断尝试,直到成功为止,因此适用于短时间内能够获得锁的情况。:这个函数用于根据给定的端点句柄查找对应的 iSCSI 端点。此设备属性允许具有管理员权限的进程在 sysfs 中读取 iSCSI 传输层的句柄,以便查看传输层的信息。通过这个宏和属性定义,可以快速创建其他类似的只读设备属性,并以相应的格式显示 iSCSI 传输层的信息。原创 2023-08-08 14:31:18 · 168 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十三-scsi_transport_iscsi(1)
scsi_transport_iscsi.h文件是用于iSCSI(Internet Small Computer System Interface)传输层的头文件。它包含了iSCSI传输层相关的定义、结构和函数原型。原创 2023-08-08 11:36:56 · 177 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十二-scsi_transport_srp(4)
此函数的目的是在移除SRP HBA和Scsi_Host后,停止SRP远程端口上的所有恢复定时器,确保在rport被释放之前,不再执行任何定时器操作,以避免悬挂和资源泄漏。的地址来判断给定的容器是否与SRP目标端口的容器匹配,如果匹配,则返回非零值,表示该设备属于这个容器。如果不匹配,返回0。的地址来判断给定的容器是否与SRP主机的容器匹配,如果匹配,则返回非零值,表示该设备属于这个容器。此函数的目的是在移除SRP HBA时,首先清理和删除该HBA上的所有SRP远程端口,以确保资源得到正确的释放和清理。原创 2023-08-07 14:23:20 · 77 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十一-scsi_transport_srp(3)
解除 SCSI target 的阻塞状态,并尝试调用 LLD 层的回调函数终止所有未完成的 I/O 请求。如果连接失败,它将根据重新连接尝试的次数调整下一次尝试的延迟时间,并再次将工作项加入工作队列进行尝试。它还会尝试调用 LLD 层的回调函数终止所有未完成的 I/O 请求,以便快速失败这些未完成的请求。如果连接失败,函数会输出一个错误日志,并根据重新连接尝试的次数调整下一次尝试的延迟时间。然后,如果延迟时间大于0,函数会将重新连接的工作项重新加入工作队列,以便在延迟时间后再次进行尝试。原创 2023-08-04 15:37:31 · 98 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统三十-scsi_transport_srp(2)
宏用于定义设备属性。它接受三个参数:属性的名称(name),属性的权限(mode),以及显示属性值的函数(show)。它接受三个参数:属性的名称(name),属性的权限(mode),以及写属性值的函数(store)。它接受三个参数:属性的名称(name),属性的权限(mode),以及显示属性值的函数(show)。它接受三个参数:属性的名称(name),属性的权限(mode),以及显示属性值的函数(show)。函数用于在符合一定条件的情况下设置 SRP rport 的状态,并根据状态转换规则返回相应的结果。原创 2023-08-04 15:17:53 · 76 阅读 · 0 评论 -
SCSI系列三:linux SCSI 子系统二十九-scsi_transport_srp(1)
编写使用 SRP 作为传输机制的 SCSI 目标驱动程序的开发人员通常会包含这个头文件,以与 Linux 内核中的 SRP 子系统进行交互,并在 SRP 协议上实现其目标的功能。这些函数是 SRP (SCSI RDMA Protocol) transport 层的接口函数,用于初始化、释放和操作 SRP initiator 驱动程序的相关功能。函数,SRP initiator 驱动程序可以在执行 I/O 操作前检查 SRP target port 的状态,并根据不同的状态采取相应的操作。原创 2023-08-04 14:52:37 · 98 阅读 · 0 评论 -
SRP示例系列六:SRP initiator&target端代码编译及配置
请注意,在执行以上步骤之前,确保已经正确配置了 SRP Target 的相关信息,包括 SRP Fabric 名称、SRP Target 名称、目标设备的 IP 地址和端口号等。实际情况下,SRP Target 和 SRP Initiator 的配置信息应该根据您的实际网络环境和设备配置来进行调整。确保在运行示例代码之前,SRP Target 已经在运行并监听在正确的端口上,而 SRP Initiator 已经正确配置了目标设备的 IP 地址和端口号。替换为您的目标设备的实际路径,确保目标设备上有该文件。原创 2023-07-25 11:20:08 · 88 阅读 · 0 评论 -
SRP示例系列五:SRP target端的 C 代码示例
在实际应用中,还需要考虑数据传输的高效性、数据完整性等方面的问题,这些细节通常由底层硬件和内核来处理。在示意图中,Loopback表示iSCSI Initiator和RDMA Protocol之间的本地环回连接,用于在Target端模拟iSCSI Initiator发送的请求。在示例代码中,我们假设已经正确配置了 SRP Initiator 和目标设备的相关信息,并且数据传输的细节已经在硬件和内核中处理。请注意,这只是一个简化的示意图,实际的调用关系可能更加复杂,涉及到更多的层和库。原创 2023-07-25 10:53:11 · 53 阅读 · 0 评论 -
SRP示例系列四:SRP Initiator 端的 C 代码示例
在上述示意图中,Initiator通过一系列不同的层和库进行数据传输。在示例代码中,我们假设已经正确配置了 iSCSI Initiator 和 SRP Target 的相关信息,并且数据传输的细节已经在硬件和内核中处理。请注意,上述示例代码只是一个简单的演示,实际实现中还需要进行错误处理、连接管理等更多细节。此外,示例中使用了一些假设的数据结构,实际应用中可能需要根据具体情况进行适当的调整和配置。请注意,这只是一个简化的示意图,实际的调用关系可能更加复杂,涉及到更多的层和库。原创 2023-07-25 10:50:43 · 49 阅读 · 0 评论 -
SRP示例系列三:SRP Initiator端和SRP Target端的数据结构
请注意,上述关键数据结构是示例中涉及的一些重要数据结构,实际实现中可能涉及更多的数据结构和相关信息。要成功实现 SRP 协议链路,需要对这些数据结构有深入了解,并根据实际情况进行配置和编程。原创 2023-07-25 10:46:20 · 44 阅读 · 0 评论 -
SRP示例系列二:SRP Initiator端和SRP Target端数据流
在这个示意图中,我在每一层都添加了相应的数据细节。在数据传输的过程中,每个层级都完成了特定的操作,如 iSCSI Command 和 iSCSI Response 在 iSCSI Initiator 和 iSCSI Target 之间交换;在实际使用中,请根据您的具体情况来配置和实现数据传输,确保网络和硬件环境的兼容性和性能。请注意,上述数据流是简化描述,实际情况中可能会涉及更多组件和细节,实现 SRP 协议链路需要深入了解相关技术和工具,并确保它们之间正确交互和通信。原创 2023-07-25 10:44:53 · 58 阅读 · 0 评论 -
SRP示例系列一:SRP Initiator端和SRP Target端的完整链路
SRP Initiator 端使用 iSCSI Initiator 连接到 SRP Target 端,通过 SRP Initiator 和 SRP Target 实现存储访问。总结来说,SRP Initiator 和 SRP Target 之间通过 iSCSI 和 SRP 协议建立连接,并在 SRP Fabric 上进行 RDMA 数据传输,以实现高效的存储访问。SRP Initiator 发起请求,SRP Target 响应并提供存储设备上的数据。整个链路保证了数据的快速传输和存储访问。原创 2023-07-25 10:31:37 · 142 阅读 · 0 评论 -
编译安装SCST
编译安装SCST(SCSI Target Subsystem)涉及多个步骤,包括下载源代码、安装依赖项、编译和安装。可以从SCST的官方网站或GitHub仓库获取源代码。编译和安装完成后,SCST将安装在系统中,可以使用相关的命令和配置文件进行配置和管理。请注意,SCST的配置和使用涉及更多细节,包括配置文件和加载相应的内核模块等。安装和配置SCST是一个复杂的过程,具体的步骤可能会因系统环境和需求而异。建议在实际部署之前仔细阅读官方文档和用户手册,以确保正确配置SCST以满足您的需求。原创 2023-07-20 17:35:04 · 428 阅读 · 1 评论 -
SRP Linux driver 系列二十:检查系统是否支持SRPT示例运行并安装需要的条件
该脚本将检查系统前提条件并安装缺少的条件,确保系统满足SRPT运行的要求。请注意,在安装过程中可能会询问确认安装依赖包,请根据需要进行确认。将上述脚本保存为名为。原创 2023-07-20 17:15:34 · 76 阅读 · 0 评论 -
SRP Linux driver 系列十九:用于检查系统是否满足运行SRP示例运行脚本
该脚本将检查是否满足运行前提条件,并根据检查结果提供相应的建议。请注意,根据您的系统环境,可能需要进行其他调整和配置。将上述脚本保存为名为。原创 2023-07-20 17:14:15 · 65 阅读 · 0 评论 -
SRP Linux driver 系列十八:SRPT使用示例
在上面的示例中,我们使用SCST Target创建了一个简单的SCSI Target,并使用SRPT后端驱动来处理IO请求。在示例中,我们将使用SCST Target和SRPT后端驱动来模拟一个简单的SCSI Target,并创建一个SCSI Initiator来连接到该SCSI Target,并发送一个IO请求。请注意,这只是一个简单的示例,实际的SCSI和SRPT应用可能涉及更多的配置和设置。根据您的需求和环境,可能需要进行更多的配置和调整。原创 2023-07-20 17:12:53 · 127 阅读 · 0 评论 -
SRP Linux driver 系列十七:ib_srpt.c--函数调用关系
库函数在SRP target的初始化和清理过程中用于与InfiniBand和RoCE设备进行交互,实现设备的配置和管理,以及与RDMA/CM进行连接管理。综上所述,SRPT作为SCST的后端驱动,实现了与SCST的接口,以提供SCSI Target的功能,并通过RDMA协议来处理SCSI Target的IO请求。:用于分配内存区域(MR),在SRP target的初始化过程中,用于获取DMA内存区域,并且用于SRQ的接收缓冲区。函数:该函数是SCST的回调函数,用于释放与SCST Target相关的资源。原创 2023-07-20 17:10:29 · 118 阅读 · 0 评论 -
SRP Linux driver 系列十六:ib_srpt.c--函数九
是一个用于显示SRPT登录信息的sysfs属性,它被定义为可读,不允许写入数据,因此最后一个参数为NULL。变量定义了每个sysfs文件的属性,它们与SRPT RDMA通道的相关信息相关联,并定义了相应的显示函数。这些函数都将被sysfs文件系统调用,并返回要显示的内容,以便用户空间程序能够获取通道的相关信息。函数是一个sysfs属性的show回调函数,用于显示SRPT端口所对应设备的链路层类型。这是一个sysfs属性的store回调函数,用于将用户提供的CPU掩码存储到SRPT端口的。原创 2023-07-20 16:51:23 · 124 阅读 · 0 评论 -
SRP Linux driver 系列十五:ib_srpt.c--函数八
如果命令状态处于SRPT_STATE_NEW、SRPT_STATE_DATA_IN或SRPT_STATE_DONE状态,说明该命令在超时前已经完成,不应该进入超时回调函数,因此会输出错误信息并终止处理。对于其他状态(如SRPT_STATE_NEED_DATA、SRPT_STATE_CMD_RSP_SENT和SRPT_STATE_MGMT_RSP_SENT等),会输出相应的超时错误信息,并调用。总之,该函数负责协调数据传输的过程,根据传输的结果返回相应的状态给SCST核心,以便继续处理后续的操作。原创 2023-07-20 14:23:22 · 96 阅读 · 0 评论 -
SRP Linux driver 系列十四:ib_srpt.c--函数七
该函数在传输数据时,通过查询队列对的属性信息,计算超时时间(T_tr),然后检查计算出的 RDMA 完成时间是否超过预设的超时时间 RDMA_COMPL_TIMEOUT_S。该函数用于处理RDMA传输过程中的SG映射。总的来说,该函数是RDMA连接管理的核心处理函数,根据不同的RDMA CM事件类型,将控制流交给相应的处理函数,并返回相应的结果,以便进行后续的处理。总的来说,该函数是连接管理的核心处理函数,根据不同的连接管理事件类型,将控制流交给相应的处理函数,并返回相应的结果,以便进行后续的处理。原创 2023-07-20 11:27:38 · 85 阅读 · 0 评论 -
SRP Linux driver 系列十三:ib_srpt.c--函数六
然后,它增加通道的引用计数,以防止在函数执行期间通道被释放。首先,它尝试将通道状态设置为CH_DISCONNECTING,如果通道未连接(还未达到已连接状态),则返回错误码-ENOTCONN。接下来,根据通道使用的通信管理器类型,它执行相应的断开连接操作。对于每个nexus,它又遍历其中的所有通道(ch)。请注意,该函数以双下划线(__)开头,这表示它是一个内部函数,应该在同一个模块中使用,并且不应该在其他模块中调用。如果断开连接成功,它会输出一条日志,表示关闭通道,因为目标(target)已被禁用。原创 2023-07-19 14:23:24 · 86 阅读 · 0 评论 -
SRP Linux driver 系列十二:ib_srpt.c--函数五
该函数是用于取消注册 SRPT RDMA 通道的。通常在与会话关联的最后一个命令完成后间接调用该函数。函数,它们都是与 SRPT RDMA 通道相关的回调函数。为其他值,则输出警告信息表示遇到了意外的操作码。用于处理 SRPT RDMA 通道上的完成事件。用于轮询 RDMA 完成队列并处理完成事件。用于处理一个 RDMA 完成事件。用于处理 IB 发送完成事件。原创 2023-07-19 14:01:33 · 88 阅读 · 0 评论 -
SRP Linux driver 系列十一:ib_srpt.c--函数四
函数用于处理 IB RDMA 错误完成通知,并根据 RDMA 操作码和当前 I/O 上下文状态采取相应的处理措施。函数用于处理 IB RDMA 完成通知,并根据 RDMA 操作码和当前 I/O 上下文状态采取相应的处理措施。用于将 SCST 的任务管理函数返回状态映射为 SRP_TSK_MGMT 的任务管理函数响应状态。函数用于构建 SRP_RSP 响应,填充 SRP_RSP 数据结构并将响应数据写入。用于处理 SRP_TSK_MGMT 信息单元,执行任务管理函数。用于处理等待列表中的接收完成事件。原创 2023-07-19 11:27:00 · 67 阅读 · 0 评论 -
SRP Linux driver 系列十:ib_srpt.c--函数三
注意:这个函数用于释放发送 I/O 上下文所占用的资源,并将其添加到通道的空闲列表,以便在需要时可以复用这些 I/O 上下文。函数用于处理 IB 发送完成通知,并根据当前 I/O 上下文状态采取相应的处理措施,包括取消映射散列表、完成 SCST 命令的处理和调整 SQ 的 WR 可用数。函数用于处理 IB_WC_SEND 错误完成事件,并根据 I/O 上下文的状态采取相应的处理措施,包括中止命令的执行和调整 SQ 的 WR 可用数。用于释放发送 I/O 上下文(I/O context)所占用的资源。原创 2023-07-19 10:11:22 · 70 阅读 · 0 评论 -
SRP Linux driver 系列九:ib_srpt.c--函数二
函数用于在SRPT HCA设备上分配I/O上下文结构,以便处理SRPT的I/O操作。函数用于为SRPT HCA设备分配一个环形数组,用于存储SRPT I/O上下文结构,并在分配失败时进行回收处理。函数确保在释放I/O上下文结构之前先解除了对应的DMA映射,并释放了相关的I/O缓冲区内存,避免了内存泄漏。函数用于释放SRPT HCA设备中的环形数组,该数组存储了SRPT I/O上下文结构,并且释放相关的资源。函数根据接收到的管理数据报文的请求类型,执行相应的操作,并生成响应的管理数据报文,从而实现了对。原创 2023-07-18 18:01:30 · 92 阅读 · 0 评论 -
SRP Linux driver 系列八:ib_srpt.c--函数一
srpt_set_ch_state该函数用于设置 SRPT(SCSI RDMA Protocol target)的 RDMA 通道的状态。函数的如下:/* * The only allowed channel state changes are those that change the channel * state into a state with a higher numerical value. Hence the new > prev test. */static bool原创 2023-07-18 14:50:48 · 91 阅读 · 0 评论 -
SRP Linux driver 系列七:ib_srpt.c--全局变量
ib_srpt.c实现了SCSI RDMA Protocol target驱动程序。它允许将SCSI命令通过RDMA传输在服务器和客户端之间进行传输。这段代码包含了模块的初始化、全局变量定义、参数设置、回调函数和相关的数据结构定义。该驱动程序使用了Linux内核中的一些重要头文件,例如linux/module.h、linux/init.h、linux/slab.h等。它还使用了一些RDMA相关的头文件,例如rdma/ib_cache.h。原创 2023-07-18 14:19:44 · 126 阅读 · 0 评论 -
SRP Linux driver 系列六:ib_srpt.h介绍
这是一个内核模块ib_srpt.ko的头文件ib_srpt.h,用于实现SCSI RDMA Protocol Target(SRP Target)功能,使得通过InfiniBand网络传输SCSI命令和数据。原创 2023-07-17 17:55:16 · 146 阅读 · 0 评论 -
SRP Linux driver 系列五:Makefile介绍
内核模块,涵盖了模块的编译、安装、卸载、测试等功能。注释对每个目标的作用和参数进行了解释,同时还增加了对每个测试目标的简单描述。编译该模块需要检查系统内核版本和OFED内核包,同时进行一系列的宏定义测试,以确保编译时所需的宏定义和选项正确设置。这个Makefile用于构建ib_srpt.ko内核模块。这个Makefile用于构建。原创 2023-07-17 15:47:35 · 116 阅读 · 0 评论 -
SRP Linux driver 系列四:ib_srpt与会话管理
以下与SRP会话相关的动作可以同时发生:会话的生命周期中发生的动作如下:原创 2023-07-17 15:36:35 · 70 阅读 · 0 评论