Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Apr 2016 22:34:30 +1000 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        lpa lpa <arvorebemgrande@gmail.com>
Cc:        Nikolay Denev <nike_d@cytexbg.com>, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   Re: Working divert socket example prog?
Message-ID:  <20160429221202.J16195@sola.nimnet.asn.au>
In-Reply-To: <CAK=3RFyb6333CkpDRMtXKAsyrRXWAUGardE1hBidd1W1_dSUeg@mail.gmail.com>
References:  <CAK=3RFxx9Xetz9kDiunmpmEZUSNFq7-O%2BQ63pT3iUHR0LM05Jw@mail.gmail.com> <CA%2BP_MZHrwtO8rpnuk_NxZ6-hoY=mqYYPs=Vymp-AEKyfT9G4sA@mail.gmail.com> <CAK=3RFyb6333CkpDRMtXKAsyrRXWAUGardE1hBidd1W1_dSUeg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 29 Apr 2016 00:32:05 -0300, lpa lpa wrote:
 > On Thu, Apr 28, 2016 at 4:06 PM, Nikolay Denev <nike_d@cytexbg.com> wrote:

 >> Hi,
 >>
 >> Have you looked at the natd(8) source code?

 > yes but it's a complete application, it does a lot of stuff and I am 
 > not able to "clean" it up to become a simple divert application which 
 > reinjects packet so I can measure something. I was not able, so far, 
 > to make thementioned divert-loop work, not breaking natd is a much 
 > longer step to a non programmer

You could have a look at Mike Makonnen's ipfw-classifyd, which diverts 
packets with the intent of applying Linux L7 filters to traffic, then 
feeding matching packets via dummynet pipes, originally for throttling
P2P applications and such.

You don't need to be interested in what it does with packets to benefit 
from knowing how it works; it's maybe an order of magnitude simpler than 
natd; and it can return from divert to different ipfw rule numbers.

This didn't become a port, not sure why, but maybe it might help you 
(though you'd still need some coding to make it useful for your needs):

http://people.freebsd.org/~mtm/ipfw-classifyd.tar.bz2

cheers, Ian

> On Thu, Apr 28, 2016 at 7:21 AM, lpa lpa <arvorebemgrande@gmail.com>
> wrote:
> > Do anyone have a working example code of a divert loop program?
> >
> > I tried building this one[1] but it seems to be for FreeBSD 5 and won't
> > build on latest system. I want to make simple measurement of pps rate
> for a
> > packet traveling inside a divert socket and getting reinjected back while
> > printing some logs.
> >
> > However I am not a coder :(
> >
> > Thank you.
> >
> > [1]https://github.com/DianeRay/divert-loop/tree/master/divert-loop



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