All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leonardo Balliache <leoball@opalsoft.net>
To: lartc@vger.kernel.org
Subject: RE: [LARTC] Question on prio qdisc
Date: Mon, 07 Jul 2003 18:08:01 +0000	[thread overview]
Message-ID: <marc-lartc-105760138323100@msgid-missing> (raw)
In-Reply-To: <marc-lartc-105714958700490@msgid-missing>

Hi, Joseph:

At 06:45 a.m. 03/07/03 +0200, you wrote:

>Thank you Lars and Wing for your responses.
>
>I just ran another experiment using RED on the
>lowest priority flow as suggested by Wing. I had
>used RED before (on all flows) without success.
>In this experiment, specified a large queue size for the interface.
>In this case the result was roughly the same.
>I overloaded the interface with 9.5 Mb/s of
>flow with 8 Mb/s at the lowest priority, 1 Mb/s
>at the medium priority, and 0.5 Mb/s at the highest
>priority hoping that RED would discard lowest
>priority packets to make room for the higher priority
>packets. The result was that all flows suffered
>approximately the same packet loss rate (about 45%).
>The interface was an 802.11b interface at 11 Mb/s
>with the two nodes very close to each other so that
>link quality was very high. Apparently RED does not
>discard the lowest priority packets that are overloading
>the interface. The following script was
>used:

RED doesn´t have any way to know which are lower, medium or higher priority 
packets. To do what you want you need to use GRED.

>My next step will be to modify the enqueue function to call
>prio_drop() if there is not enough room to enqueue a new
>packet as you have both suggested. I will have to get some help
>for this from some of our engineers that can understand the code
>better than I could.

The enqueue code is here:

static int
prio_enqueue(struct sk_buff *skb, struct Qdisc* sch)
{
    struct prio_sched_data *q = (struct prio_sched_data *)sch->data;
    struct Qdisc *qdisc;
    int ret;

    qdisc = q->queues[prio_classify(skb, sch)];

    if ((ret = qdisc->enqueue(skb, qdisc)) = 0) {
        sch->stats.bytes += skb->len;
        sch->stats.packets++;
        sch->q.qlen++;
        return 0;
     }
     sch->stats.drops++;
     return ret;
}

As you see in:

         qdisc = q->queues[prio_classify(skb, sch)];

each queue is an independent queue. Then if high priority packets are 
dropped is because the high priority queue has overflow, not because some 
(unique?) queue is full from low priority packets.

Also, in drop-tail queues, as its name imply and prio is, never a already 
enqueue packet is dropped to make room for a new one. Packets are dropped 
from the tail.

Best regards,

Leonardo Balliache




_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

  parent reply	other threads:[~2003-07-07 18:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-02 12:36 [LARTC] Question on prio qdisc Cain, Joseph
2003-07-02 16:28 ` Cheng Kwok Wing, William
2003-07-02 16:42 ` Lars Landmark
2003-07-02 19:29 ` Cain, Joseph
2003-07-07 18:08 ` Leonardo Balliache [this message]
2003-07-08 19:31 ` Cain, Joseph
2003-07-09  2:58 ` Leonardo Balliache
2003-07-09  3:35 ` Leonardo Balliache

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-lartc-105760138323100@msgid-missing \
    --to=leoball@opalsoft.net \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.