Linux认证辅导:Linux内核中流量控制(3)Linux认证考试

文章作者 100test 发表时间 2009:11:11 16:18:34
来源 100Test.Com百考试题网


  3. 数据结构流控处理对外表现是一个黑盒,外部只能看到数据入队和出队,但内部队列是如何操作和管理外面是不知道的;另外处理队列处理外,流控还有一个调度器,该调度器将数据进行分类,然后对不同类型的数据采取不同的流控处理,所分的类型可能是多级的,形成一个树型的分类树。

  流控的基本数据结构是struct Qdisc(queueing discipline,直译是“排队纪律”,意译为“流控”

  ),这是内核中为数不多的以大写字母开头结构名称之一:/* include/net/sch_generic.h */

  struct Qdisc

  {

  //入队操作

  int (*enqueue)(struct sk_buff *skb, struct Qdisc *dev).

  //出队操作

  struct sk_buff * (*dequeue)(struct Qdisc *dev).

  //标志

  unsigned flags.

  #define TCQ_F_BUILTIN 1

  #define TCQ_F_THROTTLED 2

  #define TCQ_F_INGRESS 4

  int padded.

  // Qdisc的基本操作结构

  struct Qdisc_ops *ops.

  //句柄

  u32 handle.

  u32 parent.

  atomic_t refcnt.

  //数据包链表头

  struct sk_buff_head q.

  //网卡设备

  struct net_device *dev.

  struct list_head list.

  //统计信息

  struct gnet_stats_basic bstats.

  struct gnet_stats_queue qstats.

  //速率估计

  struct gnet_stats_rate_est rate_est.

  //流控锁

  spinlock_t *stats_lock.

  struct rcu_head q_rcu.

  int (*reshape_fail)(struct sk_buff *skb,

  struct Qdisc *q).


相关文章


expect脚本安装和一个简单的脚本Linux认证考试
linux下通过串口登陆交换机Linux认证考试
Linux认证辅导:Linux内核中流量控制(5)Linux认证考试
Linux认证辅导:Linux内核中流量控制(4)Linux认证考试
Linux认证辅导:Linux内核中流量控制(3)Linux认证考试
Linux认证辅导:Linux内核中流量控制(2)Linux认证考试
Linux认证辅导:Linux内核中流量控制(1)Linux认证考试
linux传统网络配置命令与ip高级路由命令Linux认证考试
Linux或Unix下如何查看DB2所占用的端口号Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛