LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2209|回复: 3

error: ‘struct sk_buff’ has no member named ‘nh’

[复制链接]
发表于 2008-4-1 15:50:39 | 显示全部楼层 |阅读模式
/home/adang/Desktop/biyesheji/imp2/imp2_k.c: In                function ‘get_icmp’:
/home/adang/Desktop/biyesheji/imp2/imp2_k.c:118: error: ‘struct sk_buff’ has no member named ‘nh’

这是我在编译opensuse(2.6.22.5-31)上编译一个内核模块出现的问题。在struct sk_buff没有成员变量nh,如何修正这个问题?
发表于 2010-9-1 10:19:40 | 显示全部楼层
2.6.20内核以后的skbuff.h头文件中将struct sk_buff结构体修改了,h中包含有传输层的报文头,nh中包含有网络层的报文头,而mac中包含的是链路层的报文头。
linux-2.6.20以后的内核头文件sk_buff.h中这三个成员提取到单独的变量对应关系如下:
h-->transport_header;
nh-->network_header;
mac-->mac_header;
回复 支持 反对

使用道具 举报

发表于 2010-9-1 10:20:48 | 显示全部楼层
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,20)
        skb->h.raw = skb->nh.raw = skb->data;
#else
        skb->network_header = skb->transport_header = skb->data;
#endif
回复 支持 反对

使用道具 举报

发表于 2011-9-15 17:36:28 | 显示全部楼层
Post by sunzhonghai666;2110608
2.6.20内核以后的skbuff.h头文件中将struct sk_buff结构体修改了,h中包含有传输层的报文头,nh中包含有网络层的报文头,而mac中包含的是链路层的报文头。
linux-2.6.20以后的内核头文件sk_buff.h中这三个成员提取到单独的变量对应关系如下:
h-->transport_header;
nh-->network_header;
mac-->mac_header;
你好,请我你有关于sk_buff新版的例子吗?最近再写一个关于netfilter的工具,发现此变化太大,或者你那有比较好的资料,发给我参考一下可以吗?谢谢,tqtuuuu@163.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表