如何在用户空间构造一个sk_buff的结构?

在linux网络驱动中,sk_buff最后被拷贝到网卡缓冲区对应的DMA缓冲区后,只要格式正确就能够被发送出去。我现在的问题就是如何构造一个可以直接 放到DMA缓冲区的sk_buff.这个时候的sk_buff的结构是怎么样?必须填充哪几部分才能够被正确的发送出去?

作者: liujunwei1234   发布时间: 2011-01-18

你这个问题涉及到的内容比较多。建议你先了解一下 sk_buff 结构体各个成员的含义,以及不同协议层时,sk_buff 的一些关键成员是如何变化的。

作者: Godbach   发布时间: 2011-01-18

回复 Godbach


    我都看过了,我的意思是,我根本用不到sk_buff,所以不用太关心他的各个成员,我只需要能够在内存中构造出一个和sk_buff格式一样的包就行了,比如说,网卡缓存中的包要求的格式是:源mac,目的mac,帧类型,ip头,数据,校验码。  这样的格式。  但是这个格式现在好像发布出去。

作者: liujunwei1234   发布时间: 2011-01-18



QUOTE:
比如说,网卡缓存中的包要求的格式是:源mac,目的mac,帧类型,ip头,数据,校验码。  这样的格式。  但是这个格式现在好像发布出去。


那要注意字节序问题,校验和计算是否正确等等。

作者: Godbach   发布时间: 2011-01-18