摘要
本文档详细介绍了将 Linux 内核中的 IPoIB(IP over InfiniBand)驱动修改为仅使用 RC(Reliable Connection,可靠连接)模式,并移除所有与 TCP/IP 和以太网相关部分的方法。通过这些修改,可以优化 IPoIB 驱动以适应特定的高性能计算场景,提高数据传输的可靠性和效率。
背景知识
IPoIB 驱动允许以太网协议通过 InfiniBand 网络传输,支持两种通信模式:连接模式(CM)和数据报模式(UD)。CM 提供可靠的点对点通信,适用于需要高可靠性和顺序保证的场景;UD 则提供无连接的服务,适用于多播和广播场景。在某些高性能计算环境中,仅需要 CM 模式,因此可以对驱动进行精简和优化。
修改步骤
1. 修改协议类型和相关结构
-
删除以太网帧类型相关的代码:移除所有与
ETH_P_IP
、ETH_P_IPV6
等以太网帧类型相关的代码,确保驱动不再处理以太网协议的数据包。 -
移除以太网帧格式相关的结构体定义:删除
struct ethhdr
等与以太网帧格式相关的结构体定义,减少不必要的内存占用和复杂