Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8063
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 54
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-02 21:49
个人简介

千里之行,始于足下

文章分类
文章存档

2013年(1)

我的朋友

分类: LINUX

2013-05-02 22:33:59

1、 skb->users 与skb->dataref的区别
        skb->users:当引用数目增加时,该值和skb->dataref都会增加
        skb->dataref:当skb被clone时,只有skb->dataref会增加,而被clone的skb的skb->users=1
2、 pskb->copy与skb->copy
        pskb->copy:只拷贝skb数据结构,不拷贝缓冲区内容
        skb->copy  :拷贝skb数据结构也会拷贝缓冲区内容
3、 skb的操作函数:reverse,put,push,pull,实际上只是修改了指针,并未真正的添加或者删除数据
        put: 移动 skb->tail, skb->tail + n, 一般作用是添加数据
        reverse: 这个函数移动了skb->data 和skb->tail指针,主要的作用是强制对齐,经常在分配完skb后会立刻被调用
        push: 移动 skb->data指针, skb->data - n, 一般作用是 添加协议首部
        pull: 移动 skb->data指针, skb->data + n, 一般作用是 删除协议首部
4、 skb 的链表操作函数
       skb_queue_head_init: 初始化双向链表
       skb_queue_head, skb_queue_tail: 把缓冲区分别添加到队列的头和尾
       skb_dequeue, skb_dequeue_tail:把一个元素从队列的首部或者尾部删除
       skb_queue_purge: 把队列变为空队列
       skb_queue_walk:依次循环运行队列中的每个元素
阅读(2555) | 评论(2) | 转发(1) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~

firocu2015-05-31 00:39:03

有错误....

校长的马夹2013-05-03 09:32:11

第一篇就是推荐文章 
期待分享更多的博文