我正在遍历NET_BUFFER的MDL链以获取相关数据。
用于指示使用的数据空间开始位置的两个宏(NET_BUFFER_DATA_OFFSET()
& NET_BUFFER_CURRENT_MDL_OFFSET()
)让我有点困惑,因为我总是观察它们返回相同的价值,两者似乎同样可用。
应该使用哪一个?它们之间有什么区别?
答案 0 :(得分:1)
好的,明白了
显然,如果当前mdl 没有指向第一个mdl,那么NET_BUFFER_DATA_OFFSET()
将指示所有mdl的大小,直到当前的mdl加上当前自己的偏移,而NET_BUFFER_CURRENT_MDL_OFFSET()
将仅指示当前mdl中的偏移量,如果您使用NET_BUFFER_CURRENT_MDL()
宏,则这是您真正需要的
一个优化的东西。