Date: Mon, 27 Sep 2010 20:50:07 +0530 From: Paul Joe <apauljoe@gmail.com> To: freebsd-net@freebsd.org Cc: Luigi Rizzo <rizzo@iet.unipi.it> Subject: Extending dummynet/ipfw Message-ID: <AANLkTi=GozyQv%2BxuXS7xT6Kzaa7XaFxAOrihKdKdnCge@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--00c09f8a501e74fc4f04913f434e Content-Type: text/plain; charset=ISO-8859-1 Hi, I have attached a patch which allows to do flow classifications in userland (e.g based on url categories, LDAP users) and do bandwidth control in kernel(dummynet). The patch has a) a setsocketopt, to associate a pipe to the socket. b) an ipfw option(sockarg) to redirect flows to corresponding pipe. Moreover, a member uint32_t is added to struct socket to hold the pipe info. I guess this structure is not part of kernel userland ABI. Please let me know your comments, which I would be glad to incorporate Thanks, Joe. --00c09f8a501e74fc4f04913f434e Content-Type: application/octet-stream; name=ipfwpatch Content-Disposition: attachment; filename=ipfwpatch Content-Transfer-Encoding: base64 X-Attachment-Id: f_gelhemj40 SW5kZXg6IHNiaW4vaXBmdy9pcGZ3Mi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMv c3JjL3NiaW4vaXBmdy9pcGZ3Mi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1OQpkaWZmIC1j IC11IC1yMS4xNTkgaXBmdzIuYwotLS0gc2Jpbi9pcGZ3L2lwZncyLmMJMTkgQXByIDIwMTAgMTY6 MzU6NDcgLTAwMDAJMS4xNTkKKysrIHNiaW4vaXBmdy9pcGZ3Mi5jCTI3IFNlcCAyMDEwIDE0OjI1 OjQ3IC0wMDAwCkBAIC0yNjYsNiArMjY2LDcgQEAKIAl7ICJlc3RhYiIsCQlUT0tfRVNUQUIgfSwK IAl7ICJlc3RhYmxpc2hlZCIsCVRPS19FU1RBQiB9LAogCXsgInNldHVwIiwJCVRPS19TRVRVUCB9 LAorCXsgInNvY2thcmciLAkJVE9LX1NPQ0tBUkcgfSwKIAl7ICJ0Y3BkYXRhbGVuIiwJCVRPS19U Q1BEQVRBTEVOIH0sCiAJeyAidGNwZmxhZ3MiLAkJVE9LX1RDUEZMQUdTIH0sCiAJeyAidGNwZmxn cyIsCQlUT0tfVENQRkxBR1MgfSwKQEAgLTEzMzgsNiArMTMzOSw5IEBACiAJCQljYXNlIE9fRklC OgogCQkJCXByaW50ZigiIGZpYiAldSIsIGNtZC0+YXJnMSApOwogCQkJCWJyZWFrOworCQkJY2Fz ZSBPX1NPQ0tBUkc6CisJCQkJcHJpbnRmKCIgc29ja2FyZyIpOworCQkJCWJyZWFrOwogCiAJCQlj YXNlIE9fSU46CiAJCQkJcHJpbnRmKGNtZC0+bGVuICYgRl9OT1QgPyAiIG91dCIgOiAiIGluIik7 CkBAIC0zNTMxLDYgKzM1MzUsOSBAQAogCQkJZmlsbF9jbWQoY21kLCBPX0ZJQiwgMCwgc3RydG91 bCgqYXYsIE5VTEwsIDApKTsKIAkJCWF2Kys7CiAJCQlicmVhazsKKwkJY2FzZSBUT0tfU09DS0FS RzoKKwkJCWZpbGxfY21kKGNtZCwgT19TT0NLQVJHLCAwLCAwKTsKKwkJCWJyZWFrOwogCiAJCWNh c2UgVE9LX0xPT0tVUDogewogCQkJaXBmd19pbnNuX3UzMiAqYyA9IChpcGZ3X2luc25fdTMyICop Y21kOwpJbmRleDogc2Jpbi9pcGZ3L2lwZncyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUv bmN2cy9zcmMvc2Jpbi9pcGZ3L2lwZncyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlm ZiAtYyAtdSAtcjEuMTMgaXBmdzIuaAotLS0gc2Jpbi9pcGZ3L2lwZncyLmgJMTkgQXByIDIwMTAg MTU6MTE6NDUgLTAwMDAJMS4xMworKysgc2Jpbi9pcGZ3L2lwZncyLmgJMjcgU2VwIDIwMTAgMTQ6 MjU6NDcgLTAwMDAKQEAgLTE5OSw2ICsxOTksNyBAQAogCVRPS19GSUIsCiAJVE9LX1NFVEZJQiwK IAlUT0tfTE9PS1VQLAorCVRPS19TT0NLQVJHLAogfTsKIC8qCiAgKiB0aGUgZm9sbG93aW5nIG1h Y3JvIHJldHVybnMgYW4gZXJyb3IgbWVzc2FnZSBpZiB3ZSBydW4gb3V0IG9mCkluZGV4OiBzeXMv a2Vybi91aXBjX3NvY2tldC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5 cy9rZXJuL3VpcGNfc29ja2V0LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzUwCmRpZmYgLWMg LXUgLXIxLjM1MCB1aXBjX3NvY2tldC5jCi0tLSBzeXMva2Vybi91aXBjX3NvY2tldC5jCTE4IFNl cCAyMDEwIDExOjE4OjQyIC0wMDAwCTEuMzUwCisrKyBzeXMva2Vybi91aXBjX3NvY2tldC5jCTI3 IFNlcCAyMDEwIDE0OjI1OjUyIC0wMDAwCkBAIC0xMjMsNiArMTIzLDggQEAKICNpbmNsdWRlIDxz eXMvc29ja2V0dmFyLmg+CiAjaW5jbHVkZSA8c3lzL3Jlc291cmNldmFyLmg+CiAjaW5jbHVkZSA8 bmV0L3JvdXRlLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPG5ldGluZXQv aXBfdmFyLmg+CiAjaW5jbHVkZSA8c3lzL3NpZ25hbHZhci5oPgogI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CiAjaW5jbHVkZSA8c3lzL3N4Lmg+CkBAIC0yNDYxLDYgKzI0NjMsMjUgQEAKIAkJCQlzby0+ c29fZmlibnVtID0gMDsKIAkJCX0KIAkJCWJyZWFrOworCisJCWNhc2UgU09fVVNFUl9DT09LSUU6 CisJCQlpZihpcF9kbl9pb19wdHIgPT0gTlVMTCl7CisJCQkJZXJyb3IgPSBFTk9QUk9UT09QVDsK KwkJCQlnb3RvIGJhZDsKKwkJCX0KKworCQkJZXJyb3IgPSBzb29wdGNvcHlpbihzb3B0LCAmb3B0 dmFsLCBzaXplb2Ygb3B0dmFsLAorCQkJCQkJc2l6ZW9mIG9wdHZhbCk7CisJCQlpZiAob3B0dmFs IDwgMCB8fCBlcnJvciApeworCQkJCWVycm9yPSBFSU5WQUw7IAorCQkJCWdvdG8gYmFkOworCQkJ fQorCQorCQkJaWYoc28tPnNvX3Byb3RvLT5wcl9kb21haW4tPmRvbV9mYW1pbHkgPT0gUEZfSU5F VCkgCisJCQkJc28tPnNvX3VzZXJfY29va2llID0gKHVpbnQzMl90KW9wdHZhbDsKKwkJCQorCQkJ YnJlYWs7CisKIAkJY2FzZSBTT19TTkRCVUY6CiAJCWNhc2UgU09fUkNWQlVGOgogCQljYXNlIFNP X1NORExPV0FUOgpJbmRleDogc3lzL25ldGluZXQvaXBfZncuaAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvaG9tZS9uY3ZzL3NyYy9zeXMvbmV0aW5ldC9pcF9mdy5oLHYKcmV0cmlldmluZyByZXZpc2lv biAxLjEzOApkaWZmIC1jIC11IC1yMS4xMzggaXBfZncuaAotLS0gc3lzL25ldGluZXQvaXBfZncu aAkxNSBNYXIgMjAxMCAxNzoxNDoyNyAtMDAwMAkxLjEzOAorKysgc3lzL25ldGluZXQvaXBfZncu aAkyNyBTZXAgMjAxMCAxNDoyNTo1MyAtMDAwMApAQCAtMTkyLDEwICsxOTIsMTMgQEAKIAogCU9f U0VURklCLAkJLyogYXJnMT1GSUIgbnVtYmVyICovCiAJT19GSUIsCQkJLyogYXJnMT1GSUIgZGVz aXJlZCBmaWIgbnVtYmVyICovCisJCisJT19TT0NLQVJHLAkJLyogc29ja2V0IGFyZ3VtZW50ICov CiAKIAlPX0xBU1RfT1BDT0RFCQkvKiBub3QgYW4gb3Bjb2RlIQkJKi8KIH07CiAKKwogLyoKICAq IFRoZSBleHRlbnNpb24gaGVhZGVyIGFyZSBmaWx0ZXJlZCBvbmx5IGZvciBwcmVzZW5jZSB1c2lu ZyBhIGJpdAogICogdmVjdG9yIHdpdGggYSBmbGFnIGZvciBlYWNoIGhlYWRlci4KSW5kZXg6IHN5 cy9uZXRpbmV0L2lwZncvaXBfZncyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9z cmMvc3lzL25ldGluZXQvaXBmdy9pcF9mdzIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NQpk aWZmIC1jIC11IC1yMS40NSBpcF9mdzIuYwotLS0gc3lzL25ldGluZXQvaXBmdy9pcF9mdzIuYwky NyBKdWwgMjAxMCAxNDoyNjozNCAtMDAwMAkxLjQ1CisrKyBzeXMvbmV0aW5ldC9pcGZ3L2lwX2Z3 Mi5jCTI3IFNlcCAyMDEwIDE0OjI1OjU2IC0wMDAwCkBAIC0xODAxLDYgKzE4MDEsMzkgQEAKIAkJ CQkJbWF0Y2ggPSAxOwogCQkJCWJyZWFrOwogCisJCQljYXNlIE9fU09DS0FSRzoJeworCQkJCXN0 cnVjdCBpbnBjYiAqaW5wID0gYXJncy0+aW5wOworCQkJCXN0cnVjdCBpbnBjYmluZm8gKnBpOwor CQkJCQorCQkJCWlmKGlzX2lwdjYpCisJCQkJCWJyZWFrOworCisJCQkJaWYocHJvdG8gPT0gSVBQ Uk9UT19UQ1ApCisJCQkJCXBpID0gJlZfdGNiaW5mbzsKKwkJCQllbHNlIGlmIChwcm90byA9PSBJ UFBST1RPX1VEUCkKKwkJCQkJcGkgPSAmVl91ZGJpbmZvOworCQkJCWVsc2UKKwkJCQkJYnJlYWs7 CisKKwkJCQkvKiBGb3IgaW5jb21taW5nIHBhY2tldCwgbG9va3VwIHVwIHRoZSAKKwkJCQlpbnBj YiB1c2luZyB0aGUgc3JjL2Rlc3QgaXAvcG9ydCB0dXBsZSAqLworCQkJCWlmKGlucCA9PSBOVUxM KSB7CisJCQkJCUlOUF9JTkZPX1JMT0NLKHBpKTsKKwkJCQkJaW5wID0gaW5fcGNibG9va3VwX2hh c2gocGksIAorCQkJCQkJc3JjX2lwLCBodG9ucyhzcmNfcG9ydCksCisJCQkJCQlkc3RfaXAsIGh0 b25zKGRzdF9wb3J0KSwKKwkJCQkJCTAsIE5VTEwpOworCQkJCQlJTlBfSU5GT19SVU5MT0NLKHBp KTsKKwkJCQl9CisJCQkJCisJCQkJaWYoaW5wICYmIGlucC0+aW5wX3NvY2tldCkgeworCQkJCQl0 YWJsZWFyZyA9IGlucC0+aW5wX3NvY2tldC0+c29fdXNlcl9jb29raWU7CisJCQkJCWlmKHRhYmxl YXJnKQorCQkJCQkJbWF0Y2ggPSAxOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKwogCQkJY2Fz ZSBPX1RBR0dFRDogewogCQkJCXN0cnVjdCBtX3RhZyAqbXRhZzsKIAkJCQl1aW50MzJfdCB0YWcg PSAoY21kLT5hcmcxID09IElQX0ZXX1RBQkxFQVJHKSA/CkluZGV4OiBzeXMvbmV0aW5ldC9pcGZ3 L2lwX2Z3X3NvY2tvcHQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMv bmV0aW5ldC9pcGZ3L2lwX2Z3X3NvY2tvcHQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpk aWZmIC1jIC11IC1yMS4xNyBpcF9md19zb2Nrb3B0LmMKLS0tIHN5cy9uZXRpbmV0L2lwZncvaXBf Zndfc29ja29wdC5jCTcgQXByIDIwMTAgMDg6MjM6NTggLTAwMDAJMS4xNworKysgc3lzL25ldGlu ZXQvaXBmdy9pcF9md19zb2Nrb3B0LmMJMjcgU2VwIDIwMTAgMTQ6MjU6NTggLTAwMDAKQEAgLTU3 Miw2ICs1NzIsNyBAQAogCQljYXNlIE9fSVBUT1M6CiAJCWNhc2UgT19JUFBSRUNFREVOQ0U6CiAJ CWNhc2UgT19JUFZFUjoKKwkJY2FzZSBPX1NPQ0tBUkc6CiAJCWNhc2UgT19UQ1BXSU46CiAJCWNh c2UgT19UQ1BGTEFHUzoKIAkJY2FzZSBPX1RDUE9QVFM6CkluZGV4OiBzeXMvc3lzL3NvY2tldC5o Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9zeXMvc29ja2V0Lmgsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA1CmRpZmYgLWMgLXUgLXIxLjEwNSBzb2NrZXQuaAotLS0g c3lzL3N5cy9zb2NrZXQuaAk5IEphbiAyMDEwIDIzOjI0OjQ5IC0wMDAwCTEuMTA1CisrKyBzeXMv c3lzL3NvY2tldC5oCTI3IFNlcCAyMDEwIDE0OjI1OjU5IC0wMDAwCkBAIC0xMzcsNiArMTM3LDcg QEAKICNkZWZpbmUJU09fTElTVEVOUUxFTgkweDEwMTIJCS8qIHNvY2tldCdzIGNvbXBsZXRlIHF1 ZXVlIGxlbmd0aCAqLwogI2RlZmluZQlTT19MSVNURU5JTkNRTEVOCTB4MTAxMwkvKiBzb2NrZXQn cyBpbmNvbXBsZXRlIHF1ZXVlIGxlbmd0aCAqLwogI2RlZmluZQlTT19TRVRGSUIJMHgxMDE0CQkv KiB1c2UgdGhpcyBGSUIgdG8gcm91dGUgKi8KKyNkZWZpbmUJU09fVVNFUl9DT09LSUUJMHgxMDE1 CQkvKiB1c2UgdGhpcyBwaXBlIHRvIHRocm90dGxlICovCiAjZW5kaWYKIAogLyoKSW5kZXg6IHN5 cy9zeXMvc29ja2V0dmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lz L3N5cy9zb2NrZXR2YXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNzQKZGlmZiAtYyAtdSAt cjEuMTc0IHNvY2tldHZhci5oCi0tLSBzeXMvc3lzL3NvY2tldHZhci5oCTE4IFNlcCAyMDEwIDEx OjE4OjQyIC0wMDAwCTEuMTc0CisrKyBzeXMvc3lzL3NvY2tldHZhci5oCTI3IFNlcCAyMDEwIDE0 OjI1OjU5IC0wMDAwCkBAIC0xMTgsNiArMTE4LDcgQEAKIAkJY2hhcgkqc29fYWNjZXB0X2ZpbHRl cl9zdHI7CS8qIHNhdmVkIHVzZXIgYXJncyAqLwogCX0gKnNvX2FjY2Y7CiAJaW50IHNvX2ZpYm51 bTsJCS8qIHJvdXRpbmcgZG9tYWluIGZvciB0aGlzIHNvY2tldCAqLworCXVpbnQzMl90IHNvX3Vz ZXJfY29va2llOwogfTsKIAogLyoK --00c09f8a501e74fc4f04913f434e--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=GozyQv%2BxuXS7xT6Kzaa7XaFxAOrihKdKdnCge>