Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jun 2004 00:36:38 -0700
From:      Luigi Rizzo <rizzo@icir.org>
To:        Paul Querna <chip@force-elite.com>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Rate Limiting Per-Socket
Message-ID:  <20040623003638.A50907@xorpc.icir.org>
In-Reply-To: <1087961988.32333.48.camel@localhost>; from chip@force-elite.com on Tue, Jun 22, 2004 at 08:39:48PM -0700
References:  <1087961988.32333.48.camel@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jun 22, 2004 at 08:39:48PM -0700, Paul Querna wrote:
> Hello,
> 	I am looking at methods to rate limit a single socket to a specific
> pipe or rate with FreeBSD.  I would like to make an Apache module that
> could do its outgoing rate limit *in* kernel, making the module very
> simple, and more accurate by using the kernel todo the rate limiting.
> 
> I have been looking at Dummynet and pfil_hooks, but these seem to
> operate only on an entire interface.  I would like to have these operate

this is not true -- you can do what you want trivially with dummynet,
which lets you limit the bandwidth per-flow
by using masks on pipes, and you can aggregate flow as you need
using masks appropriately on addresses and ports.
Read the ipfw manpage.

What you might not like is that you need root privs to configure
ipfw/dummynet, but that's another story...

cheers
luigi

> only on a socket fd that I designate.  Ie a special setsockopt() would
> put socket x into pipe a.  This pipe 'a' was setup ahead of time to only
> allow 512 kb/s.
> 
> Is this possible with FreeBSD?  Do you have any suggestions on the best
> way to proceed?
> 
> Thank you, 
> -Paul Querna
> 
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040623003638.A50907>