引言
在 InfiniBand 网络技术中,数据包的封装与传输涉及多层协议,包括硬件地址标识、IPoIB(IP over InfiniBand)头部、IP 头部及负载数据。本文通过分析内核调试函数 print_hex_dump
和 hex_dump_to_buffer
的实现逻辑,结合 IPoIB 驱动实例,详细讲解如何逐层解析和打印数据包内容,实现从协议头到负载的完整调试。
第一部分:核心概念与基础函数
1.1 INFINIBAND_ALEN:InfiniBand 地址长度
-
定义:
INFINIBAND_ALEN
表示 InfiniBand 硬件地址长度,定义为 16 字节(128 位),对应全局唯一标识符 GID(Global Identifier)。 -
作用:用于存储 InfiniBand 设备的全局地址,类似于以太网的 MAC 地址(
ETH_ALEN