From owner-freebsd-net@FreeBSD.ORG Sun Jul 6 07:59:25 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B6EC737B401 for ; Sun, 6 Jul 2003 07:59:25 -0700 (PDT) Received: from silver.he.iki.fi (silver.he.iki.fi [193.64.42.241]) by mx1.FreeBSD.org (Postfix) with ESMTP id 446D843FF2 for ; Sun, 6 Jul 2003 07:59:24 -0700 (PDT) (envelope-from pete@he.iki.fi) Received: from he.iki.fi (localhost.he.iki.fi [127.0.0.1]) by silver.he.iki.fi (8.12.9/8.11.4) with ESMTP id h66ExIsL000776; Sun, 6 Jul 2003 17:59:19 +0300 (EEST) (envelope-from pete@he.iki.fi) Message-ID: <3F083946.9020706@he.iki.fi> Date: Sun, 06 Jul 2003 17:59:18 +0300 From: Petri Helenius User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3) Gecko/20030501 X-Accept-Language: English [en],Finnish [fi] MIME-Version: 1.0 To: Eugene Grosbein References: <20030703002247.A2097@grosbein.pp.ru> <3F0310CE.5070302@tenebras.com> <3F03867A.79F82968@kuzbass.ru> <20030705123332.A60972@xorpc.icir.org> <3F078E39.ABC0822F@kuzbass.ru> <20030706002402.A58528@xorpc.icir.org> <3F07D3CD.4CC3B317@kuzbass.ru> <20030706021404.A94750@xorpc.icir.org> <3F07EEE6.1E4EBE41@kuzbass.ru> In-Reply-To: <3F07EEE6.1E4EBE41@kuzbass.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit cc: Luigi Rizzo cc: net@freebsd.org Subject: Re: ipprecedence X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jul 2003 14:59:26 -0000 Eugene Grosbein wrote: >Luigi Rizzo wrote: > > > >> >>How could the scheduler decide when to drain the queue ? >> >> > >It should move packets from zero-bw WFQ pipe the interface FIFO >as soon as possible but should consider weights >(100 packets from one queue then 1 from another and so on). > > > That would not be right because packets that need priority might arrive later than you move non-priority packets into the interface FIFO. The "right" way to do this is like Luigi mentioned, you have a rather short (a few packets, depending on interface/pipe bandwidth) hardware queue and then fill the hardware queue from your scheduling algorithm. If you're lucky enough to have more than one hardware queues, then it becomes an issue of doing the same thing but you can stuff the "bulk" data into the low-priority queue with larger hardware window. Any decent piece of hardware has at least 256 if not 1024 or 4096 transmit and receive descriptors, which is quite a long queue even at 100Mbps. Pete