Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jul 2011 11:00:29 +1000
From:      Peter Jeremy <peter.jeremy@alcatel-lucent.com>
To:        Ermal =?iso-8859-1?Q?Lu=E7i?= <eri@freebsd.org>
Cc:        "freebsd-pf@freebsd.org" <freebsd-pf@freebsd.org>
Subject:   Re: [PATCH] PF+dummynet
Message-ID:  <20110713010029.GE65891@pjdesk.au.alcatel-lucent.com>
In-Reply-To: <BANLkTimyfZ=-UCxLAE_XX7BH3a0YLHdFKQ@mail.gmail.com>
References:  <9a542da30710161409o4732a77bybdf4ba35d7491bb@mail.gmail.com> <200710171043.08126.max@love2party.net> <d5992baf0710171324n65c4b171l71db8aeac445b52d@mail.gmail.com> <9a542da30710211232v4d3c930fg8ea778a12f3f16cb@mail.gmail.com> <9a542da30710280617t11e668e2o4d122998192f71c@mail.gmail.com> <20081103060321.GA45414@server.vk2pj.dyndns.org> <9a542da30811040753m1a2728bcu365c65da8fb61721@mail.gmail.com> <20110629044233.GB65891@pjdesk.au.alcatel-lucent.com> <BANLkTimyfZ=-UCxLAE_XX7BH3a0YLHdFKQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--m0XfRaZG5aslkcJX
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2011-Jun-29 16:26:34 +0800, Ermal Lu=E7i <eri@freebsd.org> wrote:
>On Wed, Jun 29, 2011 at 6:42 AM, Peter Jeremy
><peter.jeremy@alcatel-lucent.com> wrote:
>> Has anyone adapted the PF+dummynet patches for 8.x or 9.x?
>
>Well the patch is this
>https://github.com/bsdperimeter/pfsense-tools/blob/master/patches/RELENG_8=
_1/dummynet.RELENG_8.diff
>It should apply to 8.x without problems.
>Some manual work for any rejection might be needed because of other
>patches present in pfSense.

I notice that the issue of pipe/queue configuration has been excised
=66rom pfctl(8) and relies on ipfw(8) (hopefully only as a stopgap).
Having looked at how ipfw(4) and dummynet(4) have been roto-tilled,
I can understand why, but this is not especially convenient for me
and I'm looking at implementing the missing functionality.

There appear to be two possible approaches to move forward:
1) Include ipfw/dummynet.c into pfctl(8) and modify pfctl/parse.y
   to accumulate pipe/queue configuration options into an argv array
   that can be passed to ipfw_config_pipe().
2) Implement the functional equivalent of ipfw/dummynet.c::ipfw_config_pipe=
()
   in pfctl/parse.y.

The former approach looks simpler (apart from the code to collect the
arguments into an argv array, there are 8 fairly simple support
functions that need to be implemented or copied from ipfw) but it's
not clear that the error handling approaches are compatible.  The
latter appears to be more work and results in more code duplication
but maintains better internal consistency in pfctl.

(The other two approaches I considered but discarded were to use
ipfw(8) for configuration or to copy struct dn_pipe{7,8} from
ip_dn_glue.c and continue to use the deprecated IP_DUMMYNET_CONFIGURE
interface).

Has the pfSense Project looked at how it will implement pipe/queue
configuration?  And, if so, what approach will you be using?

--=20
Peter Jeremy

--m0XfRaZG5aslkcJX
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (FreeBSD)

iEYEARECAAYFAk4c7i0ACgkQ/opHv/APuIfGLwCdG3aAcqym+4mFx9RMM7q0h9qP
tnkAnR8cBNcroQ3SN1YscZjr3MSsLdDE
=1qgV
-----END PGP SIGNATURE-----

--m0XfRaZG5aslkcJX--



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