ethhdr
结构体定义在uapi/linux/if_ether.h文件中。在内核uapi(用户空间API)头文件中固定了它的位置,因此它是默认稳定性较好的定义。
ether_header
结构体在多年的发展过程中已经在许多地方进行了定义。随着代码逐渐迁移到使用ethhdr
(正如您在链接的修补程序中所观察到的那样),定义的数量和对这些定义的引用已经逐渐减少。可以通过查看内核源代码交叉引用器的输出来轻松地了解这种演变过程。以下列表描述了几个内核版本随时间推移的ether_header
定义/引用数量:
相比之下,查找ethhdr
的结果如下:
ethhdr
的总数似乎有一个小错误 - 它是193而不是93。) - undefined