skb_copy和skb_clone
时间:2011-11-17
来源:互联网
我看资料上讲skb_copy会把skb结构和数据都拷贝一份,skb_clone则只是拷贝skb结构。然后又说,只有要修改数据部分的时候,才用skb_copy。
但我觉得很奇怪,在什么情况下要修改数据呢?我理解的数据部分是skb->data,这一块毫无结构可言。而且每个包都不一样,有什么可修改的?
除非skb->data一开始指的不是真正的数据部分,而是包含了一部分包头结构。比如刚收到包时,外面是Ethernet层,而此时skb->data指向IP层。
这个想法对否?请各路大神指教。
但我觉得很奇怪,在什么情况下要修改数据呢?我理解的数据部分是skb->data,这一块毫无结构可言。而且每个包都不一样,有什么可修改的?
除非skb->data一开始指的不是真正的数据部分,而是包含了一部分包头结构。比如刚收到包时,外面是Ethernet层,而此时skb->data指向IP层。
这个想法对否?请各路大神指教。
作者: jiahehao 发布时间: 2011-11-17
除非skb->data一开始指的不是真正的数据部分,而是包含了一部分包头结构。比如刚收到包时,外面是Ethernet层,而此时skb->data指向IP层。
-------------------------------
你这样更不需要copy了,修改一下头指针就可以了。
skb_copy 就是把data也拷一遍的了,比如你要做vlan支持,要在 ethernet header后面 ip头前面插入一点数据,原有的skb空间又不够了,那你能怎么做呢?
不过一般也是clone 比较多点,我们之前有一个虚拟网卡,每个包都copy一下数据,很影响性能。一般考虑是不是可以考虑预留头部空间,使用分散-聚集dma来避免吧。
-------------------------------
你这样更不需要copy了,修改一下头指针就可以了。
skb_copy 就是把data也拷一遍的了,比如你要做vlan支持,要在 ethernet header后面 ip头前面插入一点数据,原有的skb空间又不够了,那你能怎么做呢?
不过一般也是clone 比较多点,我们之前有一个虚拟网卡,每个包都copy一下数据,很影响性能。一般考虑是不是可以考虑预留头部空间,使用分散-聚集dma来避免吧。
作者: lvyinghong 发布时间: 2011-11-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28