Chinaunix首页 | 论坛 | 博客
  • 博客访问: 420801
  • 博文数量: 99
  • 博客积分: 65
  • 博客等级: 民兵
  • 技术积分: 1012
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-20 16:30
个人简介

linux kernel 工程师

文章分类

全部博文(99)

文章存档

2018年(5)

2017年(12)

2016年(27)

2015年(10)

2014年(43)

2012年(2)

我的朋友

分类: LINUX

2014-02-14 09:34:18

net/sched/sched_fifo.c 实现了pfifo和bfifo
这两种策略都是fifo(先进先出)策略,即入队时放在队列尾部,出队时从头部出队。

不同点在于入队时的限制:
bfifo 对队列的字节长度做限制
pfofo 对队列的packets数目做限制

static int bfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch)
{
    if (likely(sch->qstats.backlog + qdisc_pkt_len(skb) <= sch->limit))  //字节数限制
        return qdisc_enqueue_tail(skb, sch);
       
    return qdisc_reshape_fail(skb, sch);
}

static int pfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch)
{
    if (likely(skb_queue_len(&sch->q) < sch->limit))  //packets 数目限制
        return qdisc_enqueue_tail(skb, sch);

    return qdisc_reshape_fail(skb, sch);

}

阅读(2102) | 评论(0) | 转发(0) |
0

上一篇:pfifo_fast策略分析

下一篇:qdisc的创建过程

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