当前位置: 技术问答>linux和unix
请教关于在linux网络驱动层对skb网络数据包添加自定义信息的问题
来源: 互联网 发布时间:2017-05-19
本文导语: 目前在项目开发过程中想进行这样一种处理:两台pc1,pc2运行centOS操作系统,在pc1的网卡驱动层对即将发送的skb网络数据包添加自定义的信息,在pc2的网卡驱动层获取自定义的信息并将自定义信息从数据包中移...
目前在项目开发过程中想进行这样一种处理:两台pc1,pc2运行centOS操作系统,在pc1的网卡驱动层对即将发送的skb网络数据包添加自定义的信息,在pc2的网卡驱动层获取自定义的信息并将自定义信息从数据包中移除,然后再交给内核协议栈处理。
遇到的问题:自定义的信息为10字节的大小,如果应用层利用TCP传输大量数据时,每一个skb网络数据包的tailroom空间就会被有效数据全部占用,可扩展的空间为0,就无法在网卡驱动层添加自定义的信息。
请教对此有研究的朋友能给出一些解决该问题的方法,谢谢!
遇到的问题:自定义的信息为10字节的大小,如果应用层利用TCP传输大量数据时,每一个skb网络数据包的tailroom空间就会被有效数据全部占用,可扩展的空间为0,就无法在网卡驱动层添加自定义的信息。
请教对此有研究的朋友能给出一些解决该问题的方法,谢谢!
|
自己定义buf,把你私有数据放到buf里,该buf记录原始的skb指针。不过自己要去修改驱动,buf的收发解析自己管理。
另外,非得在skb里面搞,能不能放到其它永远不会被使用的字段里。
另外,非得在skb里面搞,能不能放到其它永远不会被使用的字段里。