Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Sep 2001 14:02:24 +0200
From:      Marko Cuk <cuk@xenya.si>
To:        nuzrin@goose.net.my, walter@binity.com, freebsd-questions@FreeBSD.ORG
Subject:   Re: Fair bandwidth sharing with ipfw?
Message-ID:  <3BB466D0.8ED66170@xenya.si>
References:  <19743634202.20010928031728@binity.com> <200109281144.TAA19665@venus.cyber.mmu.edu.my>

next in thread | previous in thread | raw e-mail | index | archive | help
I think, that this can help.

Cuk


man ipfw

  A queue is an abstraction used to implement the WF2Q+ policy.  The queue
     associates to each flow a weight and a reference pipe.  Then, all flows
     linked to the same pipe are scheduled at the rate fixed by the pipe
     according to the WF2Q+ policy.

     weight weight
             Specifies the weight to be used for flows matching this queue.
             The weight must be in the range 1..100, and defaults to 1.

http://www.iet.unipi.it/~luigi/ip_dummynet/

It simulates/enforces queue and bandwidth limitations, delays, packet losses, and multipath effects. It also implements a variant of Weighted Fair Queueing called WF2Q+. It can be used on user's workstations, or on FreeBSD machines acting as routers or bridges.

To use WF2Q+, packets must be passed to queues which in turn must be connected to a pipe.
The following ipfw commands control dummynet pipes

ipfw queue NN config ...
This command is used to create or reconfigure a queue. NN is the numeric identifier (between 1 and 65535) of the queue. Issuing multiple time the configuration command results in the queue being reconfigured.

ipfw queue NN delete Destroys a single queue. Remember that packets sent to a non-existing queue are silently dropped.
ipfw queue flush Destroys all queues.
The following parameters can be configured for a queue, adding the command in the queue config... line:
Pipe: pipe NN
NN is the identifier of the pipe used for regulating traffic.
Weight: weight NN
NN is the weight (1..100, default 1) associated to the queue.
Per-Flow queueing: mask ...
The syntax is the same as for pipes. However, all queues created dynamically will share the parent pipe's bandwidth according to the weight.
Queue size, Random Packet Loss:
Same as for pipes.

nuzrin yaapar wrote:

> Try looking at ALTQ, it can do what you describe. But last I check it still
> doesn't have a patch for FreeBSD 4.4, only patchset until 4.3 is available.
>
> Not relevant to the question somehow...does anyone have any idea as to
> whether ALTQ will be integrated to the main FreeBSD tree? It will be nice to
> have this thing in the base distribution, and thus many more reason to use
> FreeBSD!!!
>
> On Friday 28 September 2001 9:17 am, Walter Hop wrote:
> > Hi all,
> >
> > I've used dummynet pipes for bandwidth management, which is working out
> > pretty well. Still there is a scenario I haven't dealt with:
> >
> > I want to connect my apartment to an ADSL line (256k/1024kbit) through a
> > FreeBSD natd+ipfw router, and share the bandwidth fairly between the
> > housemates, so that:
> >
> > 1] When only one of the workstations is busy, it can use 90% of the
> >    available bandwidth.
> >
> > 2] When multiple workstations are up/downloading, the available
> >    bandwidth is divided more or less equally between the workstations.
> >
> > Now in many situations, this balance will appear automatically; but I
> > noticed by tcpdumping that sometimes one station occupies most of the
> > bandwidth while other machines are all stalled -- their transfer rates
> > get back to normal levels when a busy machine is ipfw'ed down.
> >
> > Is this possible with ipfw (ipfw queues perhaps)?
> > Thanks. :)
> >
> > walter
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3BB466D0.8ED66170>