Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Apr 2006 21:05:15 -0700 (PDT)
From:      Kelly Yancey <kbyanc@posi.net>
To:        Amit Mondal <amit.freebsd@gmail.com>
Cc:        freebsd-net@freebsd.org
Subject:   Re: freeBSD /ipfw/ divert socket
Message-ID:  <20060424210235.T44267@gateway.posi.net>
In-Reply-To: <a6cf19a10604202244q40dd981dq66b56f435ee245c8@mail.gmail.com>
References:  <a6cf19a10604202244q40dd981dq66b56f435ee245c8@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-900672489-1145937915=:44267
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Fri, 21 Apr 2006, Amit Mondal wrote:

> Hi All,
>
> I need a little help with FreeBSD Kernel stuff. I wanna use Divert Socket to
> sniff IP packet in FreeBSD.
> For that I have compiled the kernel with options IPDIVERT and everything is
> ok.
>
> Now, when I am not really sniffing and re-injecting the packet back to the
> network stack, it is basically dropping all the packets. But I want it
> pass-through it, when no application is reading at divert socket. My
> question is, HOW CAN I MAKE IT PASS-THROUGH? IF NO APPLICATION IS READING
> FROM DIVERT SOCKET, IT SHOULD WORK AS IF THERE IS NO DIVERT SOCKET.
>
> Thanks in adavnce
>
> Rgds
> Amit
>

  Attached is a really old patch I made against FreeBSD 4.7.  It might
apply to 4.9.  Even if it doesn't, it should give you a pretty good idea
how to implement the functionality you desire.

  Kelly

--
Kelly Yancey  -  kbyanc@{posi.net,FreeBSD.org}  -  kelly@nttmcl.com
FreeBSD, The Power To Serve: http://www.freebsd.org/
--0-900672489-1145937915=:44267
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ipfw2-fwd.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <20060424210515.G44267@gateway.posi.net>
Content-Description: 
Content-Disposition: attachment; filename="ipfw2-fwd.diff"

SW5kZXg6IGlwX2Z3Mi5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
ZmlsZTogL2hvbWUvY3ZzL2Fjcy9iYXNlL3NyYy9zeXMvbmV0aW5ldC9pcF9m
dzIuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQ0KcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjExDQpkaWZmIC11IC1wIC1yMS45IC1yMS4xMQ0KLS0tIGlw
X2Z3Mi5jCTMgSmFuIDIwMDMgMjM6MzQ6MTkgLTAwMDAJMS45DQorKysgaXBf
ZncyLmMJOCBKYW4gMjAwMyAwNjoxNDo0OCAtMDAwMAkxLjExDQpAQCAtNTgw
LDE3ICs1ODAsMTcgQEAgaXBmd19sb2coc3RydWN0IGlwX2Z3ICpmLCB1X2lu
dCBobGVuLCBzdA0KIAl9DQogCWlmIChvaWYgfHwgbS0+bV9wa3RoZHIucmN2
aWYpDQogCQlsb2coTE9HX1NFQ1VSSVRZIHwgTE9HX0lORk8sDQotCQkgICAg
ImlwZnc6ICVkICVzICVzICVzIHZpYSAlcyVkJXNcbiIsDQorCQkgICAgImlw
Znc6ICVkICVzICVzICVzIHZpYSAlcyVkJXMgKGxheWVyICVkKVxuIiwNCiAJ
CSAgICBmID8gZi0+cnVsZW51bSA6IC0xLA0KIAkJICAgIGFjdGlvbiwgcHJv
dG8sIG9pZiA/ICJvdXQiIDogImluIiwNCiAJCSAgICBvaWYgPyBvaWYtPmlm
X25hbWUgOiBtLT5tX3BrdGhkci5yY3ZpZi0+aWZfbmFtZSwNCiAJCSAgICBv
aWYgPyBvaWYtPmlmX3VuaXQgOiBtLT5tX3BrdGhkci5yY3ZpZi0+aWZfdW5p
dCwNCi0JCSAgICBmcmFnbWVudCk7DQorCQkgICAgZnJhZ21lbnQsIGVoID8g
MiA6IDMpOw0KIAllbHNlDQogCQlsb2coTE9HX1NFQ1VSSVRZIHwgTE9HX0lO
Rk8sDQotCQkgICAgImlwZnc6ICVkICVzICVzIFtubyBpZiBpbmZvXSVzXG4i
LA0KKwkJICAgICJpcGZ3OiAlZCAlcyAlcyBbbm8gaWYgaW5mb10lcyAobGF5
ZXIgJWQpXG4iLA0KIAkJICAgIGYgPyBmLT5ydWxlbnVtIDogLTEsDQotCQkg
ICAgYWN0aW9uLCBwcm90bywgZnJhZ21lbnQpOw0KKwkJICAgIGFjdGlvbiwg
cHJvdG8sIGZyYWdtZW50LCBlaCA/IDIgOiAzKTsNCiAJaWYgKGxpbWl0X3Jl
YWNoZWQpDQogCQlsb2coTE9HX1NFQ1VSSVRZIHwgTE9HX05PVElDRSwNCiAJ
CSAgICAiaXBmdzogbGltaXQgJWQgcmVhY2hlZCBvbiBlbnRyeSAlZFxuIiwN
CkBAIC0xOTM5LDggKzE5MzksMTAgQEAgY2hlY2tfYm9keToNCiAJCQkJZ290
byBkb25lOw0KIA0KIAkJCWNhc2UgT19GT1JXQVJEX0lQOg0KLQkJCQlpZiAo
YXJncy0+ZWgpCS8qIG5vdCB2YWxpZCBvbiBsYXllcjIgcGt0cyAqLw0KLQkJ
CQkJYnJlYWs7DQorCQkJCWlmIChhcmdzLT5laCAmJiBvaWYgIT0gTlVMTCkg
ew0KKwkJCQkJLyogaWdub3JlIG91dGJvdW5kIGxheWVyMiBwa3RzICovDQor
CQkJCQlnb3RvIG5leHRfcnVsZTsNCisJCQkJfQ0KIAkJCQlpZiAoIXEgfHwg
ZHluX2RpciA9PSBNQVRDSF9GT1JXQVJEKQ0KIAkJCQkJYXJncy0+bmV4dF9o
b3AgPQ0KIAkJCQkJICAgICYoKGlwZndfaW5zbl9zYSAqKWNtZCktPnNhOw0K
SW5kZXg6IGlwX2lucHV0LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJD
UyBmaWxlOiAvaG9tZS9jdnMvYWNzL2Jhc2Uvc3JjL3N5cy9uZXRpbmV0L2lw
X2lucHV0LmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE0DQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTYNCmRpZmYgLXUgLXAgLXIxLjE0IC1yMS4xNg0K
LS0tIGlwX2lucHV0LmMJMyBKYW4gMjAwMyAwNDo0Njo1MyAtMDAwMAkxLjE0
DQorKysgaXBfaW5wdXQuYwk4IEphbiAyMDAzIDA2OjE2OjA2IC0wMDAwCTEu
MTYNCkBAIC0zNjksOCArMzY5LDE4IEBAIGlwX2lucHV0KHN0cnVjdCBtYnVm
ICptKQ0KIAkJY2FzZSBQQUNLRVRfVEFHX0lQRk9SV0FSRDoNCiAJCQlhcmdz
Lm5leHRfaG9wID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKW0tPm1faGRyLm1o
X2RhdGE7DQogCQkJYnJlYWs7DQorCQljYXNlIFBBQ0tFVF9UQUdfSVBGT1JX
QVJEIHwgTV9QUk9UTzU6IHsNCisJCQkvKiBYWFggVGhpcyBzaG91bGQgYmUg
dGFrZW4gb3V0IGFuZCBzaG90ISAqLw0KKwkJCXN0cnVjdCBtYnVmICp0YWcg
PSBtOw0KKwkJCW0gPSBtLT5tX25leHQ7DQorCQkJYXJncy5uZXh0X2hvcCA9
IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKil0YWctPm1faGRyLm1oX2RhdGE7DQor
CQkJbV9mcmVlKHRhZyk7DQorCQkJS0FTU0VSVChtLT5tX3R5cGUgIT0gTVRf
VEFHLCAoIlhYWCBraWxsIG1lIikpOw0KKwkJCWdvdG8gcG9zdHRhZ3M7DQor
CQkJfQ0KIAkJfQ0KIAl9DQorcG9zdHRhZ3M6DQogDQogCUtBU1NFUlQobSAh
PSBOVUxMICYmIChtLT5tX2ZsYWdzICYgTV9QS1RIRFIpICE9IDAsDQogCSAg
ICAoImlwX2lucHV0OiBubyBIRFIiKSk7DQpJbmRleDogaWZfZXRoZXJzdWJy
LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9j
dnMvYWNzL2Jhc2Uvc3JjL3N5cy9uZXQvaWZfZXRoZXJzdWJyLmMsdg0KcmV0
cmlldmluZyByZXZpc2lvbiAxLjkNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
MQ0KZGlmZiAtdSAtcCAtcjEuOSAtcjEuMTENCi0tLSBpZl9ldGhlcnN1YnIu
YwkzIEphbiAyMDAzIDA0OjQwOjA2IC0wMDAwCTEuOQ0KKysrIGlmX2V0aGVy
c3Vici5jCTggSmFuIDIwMDMgMDY6MTY6MDUgLTAwMDAJMS4xMQ0KQEAgLTUw
MSw3ICs1MDEsNyBAQCBldGhlcl9pcGZ3X2NoayhzdHJ1Y3QgbWJ1ZiAqKm0w
LCBzdHJ1Y3QgDQogCWFyZ3Mub2lmID0gZmxhZ3MgJiBFVEhFUl9JUEZXX09V
VFBVVCA/IGlmcCA6IE5VTEw7DQogCWFyZ3MuZGl2ZXJ0X3J1bGUgPSBkaXZl
cnRfcnVsZTsNCiAJYXJncy5ydWxlID0gKnJ1bGU7CS8qIG1hdGNoaW5nIHJ1
bGUgdG8gcmVzdGFydAkJKi8NCi0JYXJncy5uZXh0X2hvcCA9IE5VTEw7CS8q
IHdlIGRvIG5vdCBzdXBwb3J0IGZvcndhcmQgeWV0CSovDQorCWFyZ3MubmV4
dF9ob3AgPSBOVUxMOwkvKiBJUEZPUldBUkQJCQkJKi8NCiAJYXJncy5laCA9
ICZzYXZlX2VoOwkvKiBNQUMgaGVhZGVyIGZvciBicmlkZ2VkL01BQyBwYWNr
ZXRzCSovDQogCWkgPSBpcF9md19jaGtfcHRyKCZhcmdzKTsNCiAJKm0wID0g
YXJncy5tOw0KQEAgLTUxMCw3ICs1MTAsNyBAQCBldGhlcl9pcGZ3X2Noayhz
dHJ1Y3QgbWJ1ZiAqKm0wLCBzdHJ1Y3QgDQogCWlmICggKGkgJiBJUF9GV19Q
T1JUX0RFTllfRkxBRykgfHwgKm0wID09IE5VTEwpIC8qIGRyb3AgKi8NCiAJ
CXJldHVybiAwOw0KIA0KLQlpZiAoaSA9PSAwKSAvKiBhIFBBU1MgcnVsZS4g
ICovDQorCWlmIChpID09IDAgJiYgYXJncy5uZXh0X2hvcCA9PSBOVUxMKSAv
KiBhIFBBU1MgcnVsZS4gICovDQogCQlyZXR1cm4gMTsNCiANCiAJaWYgKERV
TU1ZTkVUX0xPQURFRCAmJiAoaSAmIElQX0ZXX1BPUlRfRFlOVF9GTEFHKSkg
ew0KQEAgLTU4OSw2ICs1ODksMzYgQEAgZXRoZXJfaXBmd19jaGsoc3RydWN0
IG1idWYgKiptMCwgc3RydWN0IA0KIA0KIAkJLyogSWYgJ3RlZScsIGNvbnRp
bnVlIHdpdGggb3JpZ2luYWwgcGFja2V0ICovDQogCQlyZXR1cm4gKGNsb25l
ICE9IE5VTEwpOw0KKwl9DQorI2VuZGlmDQorDQorI2lmZGVmIElORVQNCisJ
LyoNCisJICogSVBGSVJFV0FMTF9GT1JXQVJEDQorCSAqDQorCSAqIFhYWCBP
bmx5IHN1cHBvcnQgSVAgZm9yd2FyZGluZyBkdXJpbmcgaW4tYm91bmQgcHJv
Y2Vzc2luZy4NCisJICovDQorCWlmIChpID09IDAgJiYgYXJncy5uZXh0X2hv
cCAhPSBOVUxMICYmIGFyZ3Mub2lmID09IE5VTEwpIHsNCisJCS8qDQorCQkg
KiBQYWNrZXQgbXVzdCBiZSBJUCB0byBtYXRjaCBhbiBJUCBmb3J3YXJkIHJ1
bGUuICBUYWcgaXQgYW5kDQorCQkgKiBwYXNzIGl0IGFsb25nIHRvIGlwX2lu
cHV0KCkgZm9yIHByb2Nlc3NpbmcuDQorCQkgKiBYWFggUmVsaWVzIG9uIG5v
dGhpbmcgaW4gdGhlIG5ldGlzciBwcm9jZXNzaW5nIGV4YW1pbmluZw0KKwkJ
ICogICAgIHRoZSBsZWFkaW5nIG1idWYgYXMgaXQncyBvdXIgdGFnIHJhdGhl
ciB0aGFuIGEgcHJvcGVyDQorCQkgKiAgICAgcGFja2V0IGhlYWRlci4NCisJ
CSAqIFhYWCBUaGlzIGlzIHByZXR0eSBleHBlbnNpdmUgKGFuZCB1Z2x5ISku
ICBUaGlzIGNhbiBiZQ0KKwkJICogICAgIGNsZWFuZWQgdXAgdXNpbmcgLWN1
cnJlbnQncyBwYWNrZXQgdGFnZ2luZy4NCisJCSAqLw0KKwkJc3RydWN0IG1i
dWYgKnRhZzsNCisNCisJCU1HRVRIRFIodGFnLCBNX0RPTlRXQUlULCBNVF9U
QUcpOw0KKwkJdGFnLT5tX2hkci5taF9mbGFncyA9IFBBQ0tFVF9UQUdfSVBG
T1JXQVJEIHwgTV9QUk9UTzU7IC8qIEhhY2shICovDQorCQl0YWctPm1faGRy
Lm1oX2RhdGEgPSAoY2FkZHJfdClhcmdzLm5leHRfaG9wOw0KKwkJdGFnLT5t
X2hkci5taF9uZXh0ID0gKm0wOw0KKw0KKwkJc2NoZWRuZXRpc3IoTkVUSVNS
X0lQKTsNCisJCSh2b2lkKSBJRl9IQU5ET0ZGKCZpcGludHJxLCB0YWcsIE5V
TEwpOw0KKwkJKm0wID0gTlVMTDsNCisJCXJldHVybiAwOw0KIAl9DQogI2Vu
ZGlmDQogDQo=

--0-900672489-1145937915=:44267--



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